import { post, get2 } from "@/utils/request";

/**
 * 课程详情
 * @param id
 * @returns {*}
 */
export function fetchDetail(id) {
  return post("/api/course/course/detail", { id: id });
}

/**
 * 获取用户课程以及题目基本信息
 * @returns {*}
 */
export function fetchUserQuestionInfo() {
  return post("/api/course/course/detail-repo");
}


/**
 * 获取讲稿
 * @param id
 * @returns {*}
 */
export function fetchSpeech(courseId) {
  return post("/api/course/speech/selectById?speechId=" + courseId);
}


/**
 * 课程知识点更新
 * @param courseId 课程id
 * @param data 知识点列表
 * @returns {Promise}
 * TODO: 这个函数会被知识点更新、添加、删除所共用，未来需要分离，目前知识点处理本身就有逻辑问题
 */
export function updateCourseKnowledge(courseId, data) {
  return post("/api/course/course/knowledge-point", {
    courseId: courseId,
    point: data,
  });
}

/**
 * 获取课程知识点
 * @param courseId 课程id
 * @returns {Promise}
 */
export function getCourseKnowledge(courseId) {
  return post("/api/course/course/get-knowledge-point", { courseId: courseId });
}

/**
 *
 * @param {*} courseId 课程id
 * @returns
 */
export function resetGraph(courseId) {
  return post(`http://111.63.183.17:5000/ResetGraph?course_id=${courseId}`);
}

/**
 * 简略详情
 * @param id
 * @returns {*}
 */
export function simpleDetail(id) {
  return post("/api/course/course/simple-detail", { id: id });
}

/**
 * 课程分页
 * @param id
 * @returns {*}
 */
export function fetchPaging(data) {
  return post("/api/course/course/paging", data);
}

/**
 * 保存课程
 * @param data
 */
export function saveData(data) {
  return post("/api/course/course/save", data);
}

export function saveDataGetId(data) {
  return post("/api/openAI/course/course/saveById", data);
}

/**
 * 创建预付费订单
 * @param id
 * @returns {Promise}
 */
export function buy(refId) {
  return post("/api/course/course/buy", { refId: refId });
}

/**
 * 发送学习安排
 * @param data
 * @returns {Promise}
 */
export function prepareNotify(data) {
  return post("/api/course/course/prepare-notify", data);
}

// 获取课程的课件是否抽取知识点
export function getLMExtrState(data) {
  return get2("/api/judge_has_knowledge_generate", data);
}
